/*
 * StringBufferLn.java
 *
 * Created on 20 de noviembre de 2006, 13:43
 *
 */

package es.team.util;

/**
 * Clase util que añade funcionalidad al StringBuffer
 * @author Victor Gimeno
 */
public class StringBufferLn extends Object{
    
    /** Cadena constante del salto de linea */
    private static final String SALTO_LINEA = "\n";
    
    /** Referencia interna al StringBuffer */
    private StringBuffer stringBuffer;
    
    /** Crea una instancia de StringBufferLn */
    public StringBufferLn() {
        
        setStringBuffer( new StringBuffer() );
                
    }
    
    /**
     * Añade el contenido pasado como parámetro y le añade un salto de linea final.
     * @param str dato de tipo cadena
     */
    public void appendLn( String str ){
        
        stringBuffer.append( str );
        stringBuffer.append( SALTO_LINEA );
        
    }
    
    /**
     * Añade el contenido pasado como parámetro y le añade un salto de linea final.
     * @param sb dato tipo StringBuffer
     */
    public void appendLn( StringBuffer sb ){
        
        stringBuffer.append( sb );
        stringBuffer.append( SALTO_LINEA );
        
    }
    
    /**
     * Añade el contenido pasado como parámetro y le añade un salto de linea final.
     * @param obj Object generico
     */
    public void appendLn( Object obj ){
        
        stringBuffer.append( obj );
        stringBuffer.append( SALTO_LINEA );
        
    }
    
    /**
     * Añade el contenido pasado como parámetro y le añade un salto de linea final.
     * @param s secuencia de caracteres
     */
    public void appendLn( CharSequence s ){
        
        stringBuffer.append( s );
        stringBuffer.append( SALTO_LINEA );
        
    }

    /**
     * Añade el contenido pasado como parámetro y le añade un salto de linea final.
     * @param b dato booleano
     */
    public void appendLn( boolean b ){
        
        stringBuffer.append( b );
        stringBuffer.append( SALTO_LINEA );
        
    }

    /**
     * Añade el contenido pasado como parámetro y le añade un salto de linea final.
     * @param c caracter
     */
    public void appendLn( char c ){
        
        stringBuffer.append( c );
        stringBuffer.append( SALTO_LINEA );
        
    }

    /**
     * Añade el contenido pasado como parámetro y le añade un salto de linea final.
     * @param str array de caracteres
     */
    public void appendLn( char[] str ){
        
        stringBuffer.append( str );
        stringBuffer.append( SALTO_LINEA );
        
    }

    /**
     * Añade el contenido pasado como parámetro y le añade un salto de linea final.
     * @param d dato numero de tipo double
     */
    public void appendLn( double d ){
        
        stringBuffer.append( d );
        stringBuffer.append( SALTO_LINEA );
        
    }
    
    
    /**
     * Añade el contenido pasado como parámetro.
     * @param str dato de tipo cadena
     */
    public void append( String str ){
        
        stringBuffer.append( str );
        
    }
    
    /**
     * Añade el contenido pasado como parámetro.
     * @param sb dato tipo StringBuffer
     */
    public void append( StringBuffer sb ){
        
        stringBuffer.append( sb );
        
    }
    
    /**
     * Añade el contenido pasado como parámetro.
     * @param obj Object generico
     */
    public void append( Object obj ){
        
        stringBuffer.append( obj );
        
    }
    
    /**
     * Añade el contenido pasado como parámetro.
     * @param s secuencia de caracteres
     */
    public void append( CharSequence s ){
        
        stringBuffer.append( s );
        
    }

    /**
     * Añade el contenido pasado como parámetro.
     * @param b dato booleano
     */
    public void append( boolean b ){
        
        stringBuffer.append( b );
        
    }

    /**
     * Añade el contenido pasado como parámetro.
     * @param c caracter
     */
    public void append( char c ){
        
        stringBuffer.append( c );
        
    }

    /**
     * Añade el contenido pasado como parámetro.
     * @param str array de caracteres
     */
    public void append( char[] str ){
        
        stringBuffer.append( str );
        
    }

    /**
     * Añade el contenido pasado como parámetro.
     * @param d dato numero de tipo double
     */
    public void append( double d ){
        
        stringBuffer.append( d );
        
    }
    
    /**
     * Devuelve el StringBuffer de trabajo interno.
     * @return StringBuffer de trabajo interno.
     */
    public StringBuffer getStringBuffer() {
        
        return stringBuffer;
        
    }
    
    /**
     * Establece el StringBuffer de trabajo interno.
     * @param stringBuffer StringBuffer de trabajo interno.
     */
    public void setStringBuffer(StringBuffer stringBuffer) {
        
        this.stringBuffer = stringBuffer;
        
    }

    /**
     * Returns a string representation of the object. In general, the 
     * <code>toString</code> method returns a string that 
     * "textually represents" this object. The result should 
     * be a concise but informative representation that is easy for a 
     * person to read.
     * It is recommended that all subclasses override this method.
     * <p>
     * The <code>toString</code> method for class <code>Object</code> 
     * returns a string consisting of the name of the class of which the 
     * object is an instance, the at-sign character `<code>@</code>', and 
     * the unsigned hexadecimal representation of the hash code of the 
     * object. In other words, this method returns a string equal to the 
     * value of:
     * <blockquote>
     * <pre>
     * getClass().getName() + '@' + Integer.toHexString(hashCode())
     * </pre></blockquote>
     * 
     * 
     * @return a string representation of the object.
     */
    public String toString() {
        
        return getStringBuffer().toString();
        
    }
    
    
    
}
